#ifndef RENDER_BATCH_HPP
#define RENDER_BATCH_HPP

//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <map>
#include <Rendering/Shader.hpp>
#include <Rendering/Enumeration.hpp>

namespace Rendering {

	class RenderingQueue {
		public:	
			RenderingQueue();
			void Add(const TShaderEnvironnementPointer& context);
			void RenderQueue();
		protected:
			// Type definition						
			typedef std::map<TRenderingID, std::vector<TShaderEnvironnementPointer> > TShaderEnvironnementPointerMap;
			// Constructor	
			RenderingQueue(const RenderingQueue& copy);
			RenderingQueue& operator=(const RenderingQueue& copy);
			// Attributs
			TShaderEnvironnementPointerMap queue;
	};

}

#endif //RENDER_BATCH_HPP
